home *** CD-ROM | disk | FTP | other *** search
Text File | 2003-07-17 | 40.1 KB | 1,636 lines |
- // Copyright (C) 1997-2002 Alias|Wavefront,
- // a division of Silicon Graphics Limited.
- //
- // The information in this file is provided for the exclusive use of the
- // licensees of Alias|Wavefront. Such users have the right to use, modify,
- // and incorporate this code into other products for purposes authorized
- // by the Alias|Wavefront license agreement, without fee.
- //
- // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- // PERFORMANCE OF THIS SOFTWARE.
- //
- //
- // Alias|Wavefront Script File
- // MODIFY THIS AT YOUR OWN RISK
- //
- // Creation Date: July, 1998
- // Author: Carol Levy
- //
- // Description:
- // This script contains code to create the layouts for the
- // dynamics clip effects option boxes (for the Dynamics Effects menus).
- //
-
- // ====================== dynCreateClipEffectsLayout ======================
- //
- // SYNOPSIS
- // Create a clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- // string $theClipEffect the name of the clip effect to make the layout
- // for
- //
- global proc dynCreateClipEffectsLayout(string $parent, string $theClipEffect)
- {
- if (!isValidClipEffect($theClipEffect))
- return;
-
- string $procName = ("create"+$theClipEffect+"Layout");
-
- eval(($procName +" "+$parent));
- }
-
-
- // ====================== createSmokeLayout ======================
- //
- // SYNOPSIS
- // Create a sprite smoke clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createSmokeLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Sprite Image Name Widget
- //
- textFieldGrp -l "Sprite Image Name" -annotation "Enter the smoke image file name. A default set of images is in the directory Gifts/smoke."
- smokeImageName;
-
- // Smoke Effect Attributes layout
- //
- separator smokeSep1;
- text -l "Smoke Effect Attributes" -al "left" smokeAttrsT;
-
- // Smoke Particle Name Widget
- //
- textFieldGrp -l "Smoke Particle Name"
- smokeParticleName;
-
- checkBoxGrp -l "Cycle Images"
- -ncb 1 -l1 ""
- smokeCycleImages;
-
- intFieldGrp -l "Start Image"
- -nf 1
- smokeStartImage;
-
- intFieldGrp -l "End Image"
- -nf 1
- smokeEndImage;
-
- // Smoke Attributes Controls
- //
- floatSliderGrp -l "Smoke Sprite Min Lifespan"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- smokeMinLifespan;
-
- floatSliderGrp -l "Smoke Sprite Max Lifespan"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- smokeMaxLifespan;
-
- floatSliderGrp -l "Smoke Threshold"
- -field true
- -min 0 -max 1
- -pre 3 -step 0.1
- smokeThreshold;
-
- floatSliderGrp -l "Smoke Opacity"
- -field true
- -min 0 -max 1
- -pre 3 -step 0.5
- smokeOpacity;
-
- // Smoke Emission Attributes Controls
- //
- separator smokeSep2;
- text -l "Smoke Emission Attributes" -al "left" smokeEmissionAttrsT;
-
- // Smoke Emitter Name Widget
- //
- textFieldGrp -l "Smoke Emitter Name"
- smokeEmitterName;
-
- floatSliderGrp -l "Smoke Emission Rate"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- smokeEmissionRate;
-
- floatSliderGrp -label "DirectionX"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- smokeEmissionDirX;
-
- floatSliderGrp -label "DirectionY"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- smokeEmissionDirY;
-
- floatSliderGrp -label "DirectionZ"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- smokeEmissionDirZ;
-
- floatSliderGrp -l "Smoke Emission Spread"
- -field true
- -min 0 -max 1
- -pre 3 -step 0.1
- smokeEmissionSpread;
-
- floatSliderGrp -l "Smoke Emission Speed"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.1
- smokeEmissionSpeed;
-
- // Smoke Motion Attributes Controls.
- //
- separator smokeSep3;
- text -l "Smoke Motion Attributes" -al "left" smokeMotionAttrsT;
-
- checkBoxGrp -l "Motion Forces"
- -ncb 1
- -l1 "Turbulence"
- -on1 "dynEnableTurbulenceCB 1"
- -of1 "dynEnableTurbulenceCB 0"
- smokeMotionForces;
-
- // Turbulence Attribute Controls.
- //
- text -l "Turbulence Attributes" -al "left" smokeTurbAttrsT;
-
- // Smoke Turbulence Name Widget
- //
- textFieldGrp -l "Smoke Turbulence Name"
- smokeTurbulenceName;
-
- floatSliderGrp -l "Turbulence Magnitude"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- smokeTurbulenceMagnitude;
-
- floatSliderGrp -l "Turbulence Frequency"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- smokeTurbulenceFrequency;
-
- floatSliderGrp -l "Turbulence Attenuation"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.1
- smokeTurbulenceAttenuation;
-
- setParent ..;
- setParent ..;
- }
-
- // ====================== createFireLayout ======================
- //
- // SYNOPSIS
- // Create a fire clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createFireLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Fire Effect Attributes layout
- //
- separator fireSep1;
- text -l "Fire Attributes" -al "left" fireEffectAttrsT;
-
- textFieldGrp -l "Object On Fire"
- fireObject;
-
- textFieldGrp -l "Fire Particle Name"
- fireParticleName;
-
- separator fireSep2;
- text -l "Fire Attributes" -al "left" fireAttrsT;
-
- // Emitter Types Option Menu
- //
- optionMenuGrp -l "Fire Emitter Type:"
- -cc ("dynClipEffectsEmitterOptionChoice " + $parent)
- fireEmissionTypeOM;
- menuItem -l "Omni-directional Point" emitterOmniPoint;
- menuItem -l "Directional Point" emitterDirPoint;
- menuItem -l "Surface" emitterSurface;
- menuItem -l "Curve" emitterCurve;
-
- // Fire Attributes Controls
- //
- floatSliderGrp -l "Fire Density"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- fireDensity;
-
- floatSliderGrp -l "Flame Start Radius"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step .1
- fireStartRadius;
-
- floatSliderGrp -l "Flame End Radius"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step .1
- fireEndRadius;
-
- floatSliderGrp -l "Fire Intensity"
- -field true
- -min 0 -max 1
- -pre 3 -step .1
- fireIntensity;
-
- floatSliderGrp -l "Fire Spread"
- -field true
- -min 0 -max 1
- -pre 3 -step 0.1
- fireSpread;
-
- floatSliderGrp -l "Fire Speed"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- fireSpeed;
-
- // Fire direction controls.
- //
- floatSliderGrp -label "Fire Direction X"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- fireDirectionX;
-
- floatSliderGrp -label "Fire Direction Y"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- fireDirectionY;
-
- floatSliderGrp -label "Fire Direction Z"
- -field true
- -min -10 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- fireDirectionZ;
-
- floatSliderGrp -l "Fire Turbulence"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.5
- fireTurbulence;
-
- floatSliderGrp -l "Fire Scale"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.1
- fireScale;
-
- setParent ..;
- setParent ..;
-
- }
-
-
- // ====================== createFlowLayout ======================
- //
- // SYNOPSIS
- // Create a flow-along-curves clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createFlowLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Flow Along Curves Effect Attributes layout
- //
- separator flowSep1;
- text -l "Flow Along Curves" -al "left" flowEffectAttrsT;
-
- textFieldGrp -l "Flow Group Name"
- flowObject;
-
- separator flowSep2;
- text -l "Flow Creation Controls" -al "left" flowCreateControlT;
-
- // Flow Creation Controls
- //
-
- checkBoxGrp -l "Attach Emitter to Curve"
- -ncb 1
- -l1 ""
- flowAttachEmitter;
-
- intSliderGrp -l "Num Control Segments"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- flowNumControlSegs;
-
- intSliderGrp -l "Num Control Subsegments"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- flowNumControlSubsegs;
-
- separator flowSep3;
- text -l "Flow Attribute Controls" -al "left" flowAttrsT;
-
- floatSliderGrp -l "Emission Rate"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- flowEmitterRate;
-
- // Flow random motion factor
- //
- floatSliderGrp -label "Random Motion Speed"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- flowRandomMotion;
-
- floatSliderGrp -label "Particle Lifespan"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 0.1
- flowLifespan;
-
- floatSliderGrp -label "Goal Weight"
- -field true
- -min 0 -max 1
- -pre 3 -step 0.1
- flowGoalWeight;
-
- setParent ..;
- setParent ..;
-
- }
-
-
- // ====================== createSurfaceFlowLayout ======================
- //
- // SYNOPSIS
- // Create a flow-along-surface clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createSurfaceFlowLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Flow Along Curves Effect Attributes layout
- //
- separator surfaceFlowSep1;
- text -l "Flow Along Surface" -al "left" surfaceFlowEffectAttrsT;
-
- textFieldGrp -l "Flow Group Name" surfaceFlowObject;
-
- separator surfaceFlowSep2;
- text -l "Flow Creation Controls" -al "left" surfaceFlowCreateControlT;
-
- // Flow Creation Controls
- //
- checkBoxGrp -l "Create Particle"
- -ncb 1
- -l1 ""
- surfaceFlowCreateParticle;
- checkBoxGrp -l "Create Particle Per Flow"
- -ncb 1
- -l1 ""
- surfaceFlowCreateParticleForEachFlow;
-
- optionMenuGrp -l "Manipulators Along" -enable true surfaceFlowManipType;
- string $u = "u";
- string $v = "v";
- string $minU;
- string $minV;
- if (`about -mac`){
- // On Macintosh
- // if the menuItem label starts with a '-',
- // then it is interpreted as a 'Menu-Separator'.
- // Therefore changing '-u' to 'minusU' and '-v' to 'minusV'
- // This is a serious limitation...
- $minU = "minusU";
- $minV = "minusV";
- }
- else{
- $minU = "-u";
- $minV = "-v";
- }
- menuItem -l $u surfaceFlowManipTypeU;
- menuItem -l $minU surfaceFlowManipTypeU2;
- menuItem -l $v surfaceFlowManipTypeV;
- menuItem -l $minV surfaceFlowManipTypeV2;
- // setParent -m ..;
-
- intSliderGrp -l "Control Resolution"
- -field true
- -min 2 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- surfaceFlowControlResolution;
-
- intSliderGrp -l "Sub-Control Resolution"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- surfaceFlowSubControlResolution;
-
- intSliderGrp -l "Manipulator Resolution"
- -field true
- -min 3 -max 20
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- surfaceFlowManipulatorResolution;
-
- separator surfaceFlowSep3;
- text -l "Flow Attribute Controls" -al "left" surfaceFlowAttrsT;
-
- floatSliderGrp -l "Emission Rate"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- surfaceFlowEmitterRate;
-
- floatSliderGrp -l "Particle Lifespan"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- surfaceFlowParticleLifespan;
-
- floatSliderGrp -label "Goal Weight"
- -field true
- -min 0 -max 1
- -pre 3 -step 0.1
- surfaceFlowGoalWeight;
-
- floatSliderGrp -label "Min Age Ratio"
- -field true
- -min 0 -max 1
- -pre 3 -step 0.1
- surfaceFlowMinAgeRatio;
-
- floatSliderGrp -label "Max Age Ratio"
- -field true
- -min 0 -max 1
- -pre 3 -step 0.1
- surfaceFlowMaxAgeRatio;
-
- setParent ..;
- setParent ..;
- }
-
-
- // ====================== createDeleteSurfaceFlowLayout ======================
- //
- // SYNOPSIS
- // Create a delete-surface-flow effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createDeleteSurfaceFlowLayout( string $parent )
- {
- setParent $parent;
-
- separator deleteSurfaceFlowSep1;
- text -l "Flow Deletion Controls:" -al "left" surfaceFlowDeleteControlT;
-
- // Deletion Controls
- //
- radioButtonGrp -l ""
- -nrb 1
- -cal 1 "left"
- -l1 "Delete Surface Flow Groups"
- -cc1 ("deleteSurfaceFlowParticlesCB 1")
- deleteSurfaceFlow;
- radioButtonGrp -l ""
- -nrb 1
- -cal 1 "left"
- -shareCollection deleteSurfaceFlow
- -l1 "Remove Particles From Surface Flow"
- -cc1 ("deleteSurfaceFlowParticlesCB 0")
- removeParticlesFromSurfaceFlow;
-
- checkBoxGrp -l ""
- -ncb 1
- -cal 1 "left"
- -l1 "Delete Surface Flow Particles"
- deleteSurfaceFlowParticles;
-
- setParent ..;
- setParent ..;
- }
-
-
- // ====================== createLightningLayout ======================
- //
- // SYNOPSIS
- // Create a lightning clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createLightningLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Flow Along Curves Effect Attributes layout
- //
- separator lightningFlowSep1;
- text -l "Lightning" -al "left" lightningEffectAttrsT;
-
- textFieldGrp -l "Lightning Name" lightningObject;
-
- separator lightningFlowSep2;
- text -l "Lightning Creation Controls" -al "left" lightningCreateControlT;
-
- // Lightning Creation Controls
- //
- checkBoxGrp -l "Group Lightnings"
- -ncb 1
- -l1 ""
- lightningGrouping;
-
- radioButtonGrp -l "Creation Options"
- -nrb 3
- -cal 1 "left"
- -l1 "All"
- -l2 "In Order"
- -l3 "From First"
- lightningCreateOptions;
-
- intSliderGrp -l "Curve Segments"
- -field true
- -min 5 -max 100
- -fmn 5 -fmx $dynMaxFloatField
- -sliderStep 1
- lightningCurveSegments;
-
- separator lightningFlowSep3;
- text -l "Lightning Attribute Controls" -al "left" lightningAttrsT;
-
- floatSliderGrp -l "Thickness"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- lightningThickness;
-
- floatSliderGrp -l "Max Spread"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- lightningMaxSpread;
-
- floatSliderGrp -l "Lightning Start"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- lightningStart;
-
- floatSliderGrp -l "Lightning End"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- lightningEnd;
-
- floatSliderGrp -l "Lightning Glow Intensity"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- lightningGlowIntensity;
-
- setParent ..;
- setParent ..;
- }
-
-
- global proc deleteSurfaceFlowParticlesCB( int $enable )
- {
- checkBoxGrp -e -enable $enable deleteSurfaceFlowParticles;
- }
-
-
- // =================== INTERNAL CONTROL CALLBACKS ===============
- //
- //
- // Callback for the smoke Use turbulence checkbox.
- //
- global proc dynEnableTurbulenceCB(int $isTurbulenceOn)
- {
- if ($isTurbulenceOn)
- {
- textFieldGrp -e -enable true smokeTurbulenceName;
- floatSliderGrp -e -enable true smokeTurbulenceMagnitude;
- floatSliderGrp -e -enable true smokeTurbulenceFrequency;
- floatSliderGrp -e -enable true smokeTurbulenceAttenuation;
- }
- else
- {
- textFieldGrp -e -enable false smokeTurbulenceName;
- floatSliderGrp -e -enable false smokeTurbulenceMagnitude;
- floatSliderGrp -e -enable false smokeTurbulenceFrequency;
- floatSliderGrp -e -enable false smokeTurbulenceAttenuation;
- }
- }
-
-
- // Callback for the fire emitter option menu.
- // Set fire spread "on" for all but the omni emitter type.
- //
- global proc dynClipEffectsEmitterOptionChoice(string $parent)
- {
- setParent $parent;
- int $choice = `optionMenuGrp -q -sl fireEmissionTypeOM`;
-
- if ($choice == 1 || $choice == 3)
- {
- // Omni Point and Surface
- //
- floatSliderGrp -e -enable false fireSpread;
- }
- else
- {
- // Directional Point and Curve
- //
- floatSliderGrp -e -enable true fireSpread;
- }
- }
-
-
- // Callback for the melt Use resolution control.
- //
- global proc dynEnableLatticeResCB(string $parent, int $isOn)
- {
- setParent $parent;
- if ($isOn)
- {
- floatSliderGrp -e -enable true meltLatticeResX;
- floatSliderGrp -e -enable true meltLatticeResY;
- floatSliderGrp -e -enable true meltLatticeResZ;
- }
- else
- {
- floatSliderGrp -e -enable false meltLatticeResX;
- floatSliderGrp -e -enable false meltLatticeResY;
- floatSliderGrp -e -enable false meltLatticeResZ;
- }
- }
-
-
- // ====================== createMeltLayout ======================
- //
- // SYNOPSIS
- // Create a melt clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createMeltLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- // Melt Effect Attributes layout
- //
- separator meltSep1;
- text -l "Melt Attributes" -al "left" meltEffectAttrsT;
-
- textFieldGrp -l "Object to Melt"
- meltObject;
-
- textFieldGrp -l "Melt-on Object"
- meltOnObject;
-
- separator meltSep2;
- text -l "Melt Attributes" -al "left" meltAttrsT;
-
- // Melt Attributes Controls
- //
- floatSliderGrp -l "Melt Speed"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx 1000
- -pre 3 -step .5
- meltSpeed;
-
- floatSliderGrp -l "Melt Spread"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx 1000
- -pre 3 -step 1
- meltSpread;
-
- floatSliderGrp -l "Melt Distortion"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx 1000
- -pre 3 -step 1
- meltDistortion;
-
- // Melt direction controls.
- //
- floatSliderGrp -label "Melt Direction X"
- -field true
- -min -1 -max 1
- -pre 3 -step 0.1
- meltDirectionX;
-
- floatSliderGrp -label "Melt Direction Y"
- -field true
- -min -1 -max 1
- -pre 3 -step 0.1
- meltDirectionY;
-
- floatSliderGrp -label "Melt Direction Z"
- -field true
- -min -1 -max 1
- -pre 3 -step 0.1
- meltDirectionZ;
-
- // Melt control resolution.
- //
- checkBoxGrp -l "Use Resolution Control"
- -ncb 1
- -l1 ""
- -on1 ("dynEnableLatticeResCB " + $parent + " 1")
- -of1 ("dynEnableLatticeResCB " + $parent + " 0")
- meltUseLatticeRes;
-
- floatSliderGrp -label "Control Resolution X"
- -field true
- -min 2 -max 100
- -pre 0 -step 1
- meltLatticeResX;
-
- floatSliderGrp -label "Control Resolution Y"
- -field true
- -min 2 -max 100
- -pre 0 -step 1
- meltLatticeResY;
-
- floatSliderGrp -label "Control Resolution Z"
- -field true
- -min 2 -max 100
- -pre 0 -step 1
- meltLatticeResZ;
-
- setParent ..;
- setParent ..;
-
- }
-
-
- // ====================== createFireworksLayout ======================
- //
- // SYNOPSIS
- // Create a fireworks clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createFireworksLayout( string $parent )
- {
- global float $dynMaxFloatField;
- global float $dynMinFloatField;
-
- setParent $parent;
-
- textFieldGrp -l "Fireworks Name" fireworksName;
-
- // Rocket Attributes layout
- //
- frameLayout -l "Rocket Attributes"
- -bv true -lv true -cll true -cl false -mh 4
- fwRocketAttrsF;
- columnLayout fwRocketAttrsC;
-
- // Controls for fireworks rockets
- //
- intSliderGrp -l "Num Rockets"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- fwNumRockets;
-
- floatSliderGrp -label "Launch Position X"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwLaunchPositionX;
-
- floatSliderGrp -label "Launch Position Y"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwLaunchPositionY;
-
- floatSliderGrp -label "Launch Position Z"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwLaunchPositionZ;
-
- floatSliderGrp -label "Burst Position Center X"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwBurstPosCenterX;
-
- floatSliderGrp -label "Burst Position Center Y"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwBurstPosCenterY;
-
- floatSliderGrp -label "Burst Position Center Z"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwBurstPosCenterZ;
-
- floatSliderGrp -label "Burst Position Extents X"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwBurstExtentsX;
-
- floatSliderGrp -label "Burst Position Extents Y"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwBurstExtentsY;
-
- floatSliderGrp -label "Burst Position Extents Z"
- -field true
- -min -100 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwBurstExtentsZ;
-
- floatSliderGrp -label "First Launch Frame"
- -field true
- -min 0 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwFirstLaunchFrame;
-
- floatSliderGrp -label "Launch Rate (Per Frame)"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwLaunchRate;
-
- floatSliderGrp -label "Min Flight Time (Frames)"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwMinFlightTime;
-
- floatSliderGrp -label "Max Flight Time (Frames)"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwMaxFlightTime;
-
- floatSliderGrp -label "Max Burst Speed"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- fwMaxBurstSpeed;
-
- setParent ..;
- setParent ..;
-
- // Rocket Trail Sparks Attributes layout
- //
- frameLayout -l "Rocket Trail Attributes"
- -bv true -lv true -cll true -cl true -mh 4
- fwRocketTrailAttrsF;
- columnLayout fwRocketTrailAttrsC;
-
- floatSliderGrp -label "Emission Rate"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- fwTrailRate;
-
- floatSliderGrp -label "Emission Speed"
- -field true
- -min 0 -max 100
- -pre 3 -step 1
- fwTrailSpeed;
-
- floatSliderGrp -label "Emission Spread"
- -field true
- -min 0 -max 1
- -pre 3 -step .1
- fwTrailSpread;
-
- floatSliderGrp -label "Min Tail Size"
- -field true
- -min 0 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwMinTrailTailSize;
-
- floatSliderGrp -label "Max Tail Size"
- -field true
- -min 0 -max 10
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwMaxTrailTailSize;
-
- // Rocket Trail Colors layout
- //
- separator;
- text -l "Rocket Trail Color Attributes" -al "left" fwRockeTrailColorsAttrsT;
-
- checkBoxGrp -l "Set Color Creation Proc"
- -ncb 1 -v1 0 -l1 ""
- -on1 ("fwTrailSetUserColorProcCB " + $parent + " 1")
- -of1 ("fwTrailSetUserColorProcCB " + $parent + " 0")
- fwTrailSetUserColor;
-
- textFieldGrp -l "Color Creation Proc"
- fwTrailColorCreationProc;
-
- intSliderGrp -l "Num Trail Colors"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- fwTrailNumColors;
-
-
- floatSliderGrp -label "Glow Intensity"
- -field true
- -min 0 -max 1
- -pre 3 -step .1
- fwTrailGlowIntensity;
-
- floatSliderGrp -label "Incandescence Intensity"
- -field true
- -min 0 -max 1
- -pre 3 -step .1
- fwTrailIncanIntensity;
-
- setParent ..;
- setParent ..;
-
- // Rocket Burst Sparks layout
- //
- frameLayout -l "Fireworks Sparks Attributes"
- -bv true -lv true -cll true -cl true -mh 4
- fwBurstAttrsF;
- columnLayout fwBurstAttrsC;
-
- floatSliderGrp -label "Min Sparks Count"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- fwMinSparksCount;
-
- floatSliderGrp -label "Max Sparks Count"
- -field true
- -min 0 -max 500
- -fmn 0 -fmx $dynMaxFloatField
- -pre 3 -step 10
- fwMaxSparksCount;
-
- floatSliderGrp -label "Min Tail Size"
- -field true
- -min 0 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwMinSparksTailSize;
-
- floatSliderGrp -label "Max Tail Size"
- -field true
- -min 0 -max 100
- -fmn $dynMinFloatField -fmx $dynMaxFloatField
- -pre 3 -step 1
- fwMaxSparksTailSize;
-
-
- // Fireworks Sparks Colors layout
- //
- separator;
- text -l "Fireworks Colors Attributes" -al "left" fwColorsAttrsT;
-
- checkBoxGrp -l "Set Color Creation Proc"
- -ncb 1 -v1 0 -l1 ""
- -on1 ("fwSparksSetUserColorProcCB " + $parent + " 1")
- -of1 ("fwSparksSetUserColorProcCB " + $parent + " 0")
- fwSparksSetUserColor;
-
- textFieldGrp -l "Color Creation Proc"
- fwSparksColorCreationProc;
-
- intSliderGrp -l "Num Spark Colors"
- -field true
- -min 0 -max 100
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- fwSparksNumColors;
-
- intSliderGrp -l "Sparks Color Spread"
- -field true
- -min 0 -max 10
- -fmn 0 -fmx $dynMaxFloatField
- -sliderStep 1
- fwSparksColorSpread;
-
- floatSliderGrp -label "Glow Intensity"
- -field true
- -min 0 -max 1
- -pre 3 -step .1
- fwSparksGlowIntensity;
-
- floatSliderGrp -label "Incandescence Intensity"
- -field true
- -min 0 -max 1
- -pre 3 -step .1
- fwSparksIncanIntensity;
- }
-
-
- // ====================== createShatterLayout ======================
- //
- // SYNOPSIS
- // Create a shatter clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc createShatterLayout( string $parent )
- {
- setParent $parent;
-
- string $form = `formLayout`;
- string $tabs = `tabLayout -cc ("dynClipEffectsShatterTabCB " + $parent) -width 200 -innerMarginWidth 5 -innerMarginHeight 5 shatterTabLayout`;
-
- formLayout -edit -attachForm $tabs "top" 0
- -attachForm $tabs "left" 0
- -attachForm $tabs "bottom" 0
- -attachForm $tabs "right" 0
- $form;
-
- string $surfaceTab = createSurfaceShatterTabLayout( $parent );
- string $solidTab = createSolidShatterTabLayout( $parent );
- string $crackTab = createCrackShatterTabLayout( $parent );
-
- tabLayout -edit -tabLabel $surfaceTab "Surface Shatter"
- -tabLabel $solidTab "Solid Shatter"
- -tabLabel $crackTab "Crack Shatter" $tabs;
-
- string $shatterTypeValue = `tabLayout -q -selectTab shatterTabLayout`;
-
- setParent ..;
- setParent ..;
- }
-
- // ====================== createSurfaceShatterTabLayout ======================
- //
- // SYNOPSIS
- // Create a surface shatter clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc string createSurfaceShatterTabLayout( string $parent )
- {
- string $surfaceTab = `rowColumnLayout -numberOfColumns 1 -cw 1 700 shatterSurfaceTab`;
-
- textFieldGrp -l "Surface Shatter Name"
- shatterSurfaceName;
-
- // Shatter Attributes Controls
- //
- intSliderGrp -l "Shard Count"
- -field true
- -min 2 -max 10
- -fmx 10000
- -step 1
- shatterSurfaceShardCount;
-
- floatSliderGrp -l "Extrude Shards"
- -field true
- -min -1.0
- -max 1.0
- -fmn -10000.0
- -fmx 10000.0
- -step 1
- shatterSurfaceExtrude;
-
- intSliderGrp -l "Seed Value"
- -field true
- -min 0 -max 100
- -fmx 100000
- -step 1
- shatterSurfaceSeedValue;
-
- optionMenuGrp -l "Post Operation"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterSurfacePostOperation;
- menuItem -l "shapes";
- // menuItem -l "rigid bodies";
- menuItem -l "rigid bodies with collisions off";
- // menuItem -l "soft bodies";
- menuItem -l "soft bodies with goals";
- // menuItem -l "soft bodies with lattice";
- menuItem -l "soft bodies with lattice and goals";
- menuItem -l "sets";
-
- checkBoxGrp -l "" -l1 "Triangulate Surface"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- -ncb 1
- shatterSurfaceTriangulate;
-
- checkBoxGrp -l "" -l1 "Smooth Shards"
- -ncb 1
- shatterSurfaceSmoothing;
-
- radioButtonGrp -l "Original Surface"
- -nrb 3
- -l1 "Nothing"
- -l2 "Hide"
- -l3 "Delete"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterSurfaceOriginal;
-
- radioButtonGrp -l ""
- -nrb 1
- -scl shatterSurfaceOriginal
- -l1 "Link to Shards"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterSurfaceOriginal1;
-
- checkBoxGrp -l "" -l1 "Make Original Surface Rigid"
- -ncb 1
- -en false
- shatterSurfaceMakeRigidBody;
-
- checkBoxGrp -l "" -l1 "Verbose Mode"
- -ncb 1
- shatterSurfaceVerbose;
-
- setParent ..;
-
- return $surfaceTab;
- }
-
-
- // ====================== createSolidShatterTabLayout ======================
- //
- // SYNOPSIS
- // Create a solid shatter clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc string createSolidShatterTabLayout( string $parent )
- {
- // Solid Shatter Tab
- //
- string $solidTab = `rowColumnLayout -numberOfColumns 1 -cw 1 500 shatterSolidTab`;
-
- textFieldGrp -l "Solid Shatter Name"
- shatterSolidName;
-
- intSliderGrp -l "Shard Count"
- -field true
- -min 2 -max 10
- -fmx 10000
- -step 1
- shatterSolidShardCount;
-
- floatSliderGrp -l "Edge Jagginess"
- -field true
- -min 0.0 -max 1.0
- shatterSolidEdgePerturbation;
-
- intSliderGrp -l "Seed Value"
- -field true
- -min 0 -max 100
- -fmx 100000
- -step 1
- shatterSolidSeedValue;
-
- optionMenuGrp -l "Post Operation"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterSolidPostOperation;
- menuItem -l "shapes";
- // menuItem -l "rigid bodies";
- menuItem -l "rigid bodies with collisions off";
- // menuItem -l "soft bodies";
- menuItem -l "soft bodies with goals";
- // menuItem -l "soft bodies with lattice";
- menuItem -l "soft bodies with lattice and goals";
-
- checkBoxGrp -l "" -l1 "Remove Interior Polygons"
- -ncb 1
- -v1 false
- -cc ("dynSolidShatterRemoveInteriorCB " + $parent)
- shatterSolidRemoveInterior;
-
- floatSliderGrp -l "Extrude Shards"
- -field true
- -min -1.0
- -max 1.0
- -fmn -10000.0
- -fmx 10000.0
- -step 1
- -enable false
- shatterSolidExtrude;
-
- checkBoxGrp -l "" -l1 "Triangulate Surface"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- -ncb 1
- shatterSolidTriangulate;
-
- checkBoxGrp -l "" -l1 "Apply Interior Material"
- -ncb 1
- shatterSolidInteriorMaterial;
-
- radioButtonGrp -l "Original Surface"
- -nrb 3
- -l1 "Nothing"
- -l2 "Hide"
- -l3 "Delete"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterSolidOriginal;
-
- radioButtonGrp -l ""
- -nrb 1
- -scl shatterSolidOriginal
- -l1 "Link to Shards"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterSolidOriginal1;
-
- checkBoxGrp -l "" -l1 "Make Original Surface Rigid"
- -ncb 1
- -en false
- shatterSolidMakeRigidBody;
-
- checkBoxGrp -l "" -l1 "Verbose Mode"
- -ncb 1
- shatterSolidVerbose;
-
- setParent ..;
-
- return $solidTab;
- }
-
-
- // ====================== createCrackShatterTabLayout ======================
- //
- // SYNOPSIS
- // Create a crack shatter clip effect option box layout.
- //
- // INPUT ARGUMENTS
- // string $parent the parent layout
- //
- global proc string createCrackShatterTabLayout( string $parent )
- {
- // Crack Shatter Tab.
- //
- string $crackTab = `rowColumnLayout -numberOfColumns 1 -cw 1 600 shatterCrackTab`;
-
- textFieldGrp -l "Crack Shatter Name"
- shatterCrackName;
-
- // Shatter Attributes Controls
- //
- intSliderGrp -l "Crack Count"
- -field true
- -min 1 -max 10
- -fmn 0
- -fmx 10000
- -step 1
- shatterCrackCount;
-
- intSliderGrp -l "Crack Length"
- -field true
- -min 1 -max 500
- -step 1
- shatterCrackLength;
-
- floatSliderGrp -l "Edge Jagginess"
- -field true
- -min 0.0 -max 1.0
- shatterCrackEdgePerturbation;
-
- floatSliderGrp -l "Extrude Shards"
- -field true
- -min -1.0
- -max 1.0
- -fmn -10000.0
- -fmx 10000.0
- -step 1
- shatterCrackExtrude;
-
- intSliderGrp -l "Seed Value"
- -field true
- -min 0 -max 100
- -fmx 100000
- -step 1
- shatterCrackSeedValue;
-
- optionMenuGrp -l "Post Operation"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterCrackPostOperation;
- menuItem -l "cracks on surface";
- menuItem -l "shapes";
- // menuItem -l "rigid bodies";
- menuItem -l "rigid bodies with collisions off";
- // menuItem -l "soft bodies";
- menuItem -l "soft bodies with goals";
- // menuItem -l "soft bodies with lattice";
- menuItem -l "soft bodies with lattice and goals";
- menuItem -l "sets";
-
- checkBoxGrp -l "" -l1 "Triangulate Surface"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- -ncb 1
- shatterCrackTriangulate;
-
- radioButtonGrp -l "Original Surface"
- -nrb 3
- -l1 "Nothing"
- -l2 "Hide"
- -l3 "Delete"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterCrackOriginal;
-
- radioButtonGrp -l ""
- -nrb 1
- -scl shatterCrackOriginal
- -l1 "Link to Shards"
- -cc ("dynClipEffectsPostOperationCB " + $parent)
- shatterCrackOriginal1;
-
- checkBoxGrp -l "" -l1 "Make Original Surface Rigid"
- -en false
- -ncb 1
- shatterCrackMakeRigidBody;
-
- checkBoxGrp -l "" -l1 "Verbose Mode"
- -ncb 1
- shatterCrackVerbose;
-
- setParent ..;
-
- return $crackTab;
- }
-
-
- // ====================== dynClipEffectsPostOperationCB ======================
- //
- // Callback for the shatter effect post operation option menu.
- // This callback prints an warning if the user does not have
- // the tab button set when creating rigid bodies.
- //
- global proc dynClipEffectsPostOperationCB(string $parent)
- {
- setParent $parent;
-
- int $rigidBodyOption = false;
- int $originalSurface = -1;
- string $triangulateValue;
- string $optionValue;
-
- string $shatterTypeValue = `tabLayout -q -selectTab shatterTabLayout`;
-
- if ( $shatterTypeValue == "shatterSurfaceTab" )
- {
- $optionValue = `optionMenuGrp -q -v shatterSurfacePostOperation`;
- $triangulateValue = `checkBoxGrp -q -v1 shatterSurfaceTriangulate`;
- $originalSurface = `radioButtonGrp -q -select shatterSurfaceOriginal`;
-
- if ( $originalSurface == 0 )
- {
- $originalSurface = `radioButtonGrp -q -select shatterSurfaceOriginal1` + 3;
- }
- }
- else if ( $shatterTypeValue == "shatterSolidTab" )
- {
- $optionValue = `optionMenuGrp -q -v shatterSolidPostOperation`;
- $triangulateValue = `checkBoxGrp -q -v1 shatterSolidTriangulate`;
- $originalSurface = `radioButtonGrp -q -select shatterSolidOriginal`;
-
- if ( $originalSurface == 0 )
- {
- $originalSurface = `radioButtonGrp -q -select shatterSolidOriginal1` + 3;
- }
- }
- else if ( $shatterTypeValue == "shatterCrackTab" )
- {
- $optionValue = `optionMenuGrp -q -v shatterCrackPostOperation`;
- $triangulateValue = `checkBoxGrp -q -v1 shatterCrackTriangulate`;
- $originalSurface = `radioButtonGrp -q -select shatterCrackOriginal`;
-
- if ( $originalSurface == 0 )
- {
- $originalSurface = `radioButtonGrp -q -select shatterCrackOriginal1` + 3;
- }
- }
-
- if ( ($optionValue == "rigid bodies") ||
- ($optionValue == "rigid bodies with collisions off") )
- {
- $rigidBodyOption = true;
- }
-
- if ( ($triangulateValue == 0) && $rigidBodyOption )
- {
- warning( "Creating rigid bodies without triangulating the surface may cause interpenetration problems." );
- }
-
- if ( $originalSurface != 4 )
- {
- $rigidBodyOption = false;
- }
-
- if ( $shatterTypeValue == "shatterSurfaceTab" )
- {
- checkBoxGrp -e -enable $rigidBodyOption shatterSurfaceMakeRigidBody;
- }
- else if ( $shatterTypeValue == "shatterSolidTab" )
- {
- checkBoxGrp -e -enable $rigidBodyOption shatterSolidMakeRigidBody;
- }
- else if ( $shatterTypeValue == "shatterCrackTab" )
- {
- checkBoxGrp -e -enable $rigidBodyOption shatterCrackMakeRigidBody;
- }
- }
-
-
-
- // ====================== dynSolidShatterRemoveInteriorCB ======================
- //
- // This callback enables/disables the extrude slider depending on the state
- // of the remove interior check box.
- //
- //
- global proc dynSolidShatterRemoveInteriorCB(string $parent)
- {
- setParent $parent;
-
- string $triangulateValue;
- string $optionValue;
-
- int $removeInterior = `checkBoxGrp -q -v1 shatterSolidRemoveInterior`;
-
- if ( $removeInterior )
- {
- floatSliderGrp -e -enable true shatterSolidExtrude;
- checkBoxGrp -e -enable false shatterSolidInteriorMaterial;
- }
- else
- {
- floatSliderGrp -e -enable false shatterSolidExtrude;
- checkBoxGrp -e -enable true shatterSolidInteriorMaterial;
- }
- }
-
-
-
- // ====================== dynClipEffectsShatterTabCB ======================
- //
- // Sets the option var for the tab layout.
- //
- global proc dynClipEffectsShatterTabCB(string $parent)
- {
- setParent $parent;
-
- string $shatterTypeValue = `tabLayout -q -selectTab shatterTabLayout`;
-
- optionVar -stringValue shatterType $shatterTypeValue;
- }
-
- // Callback for the fireworks Random Firesorks checkbox.
- //
-
- global proc fwSparksSetUserColorProcCB (string $parent, int $isOn)
- {
- // Enable/disable controls depending on the value of $isOn
- //
- setParent $parent;
-
- if ($isOn)
- {
- textFieldGrp -e -enable true fwSparksColorCreationProc;
- }
- else
- {
- textFieldGrp -e -enable false fwSparksColorCreationProc;
- }
- }
-
- global proc fwTrailSetUserColorProcCB (string $parent, int $isOn)
- {
- // Enable/disable controls depending on the value of $isOn
- //
- setParent $parent;
-
- if ($isOn)
- {
- textFieldGrp -e -enable true fwTrailColorCreationProc;
- }
- else
- {
- textFieldGrp -e -enable false fwTrailColorCreationProc;
- }
- }
-